package cn.smart.epic.core.shiro.factory;

import cn.smart.epic.common.persistence.model.User;
import cn.smart.epic.core.shiro.ShiroUser;
import org.apache.shiro.authc.SimpleAuthenticationInfo;

import java.util.List;

/**
 * @Auther Z.B
 * @date 2017/10/11 14:24
 * @Email 2545375@qq.com
 * @Description 定义shirorealm所需数据的接口
 * @since 1.0
 */

public interface IShiro {

    /**
     * 根据账号获取登录用户
     *
     * @param account
     * @return
     */
    User user(String account);

    /**
     * 根据系统用户获取Shiro的用户
     *
     * @param user
     * @return
     */
    ShiroUser shiroUser(User user);

    /**
     * 获取权限列表通过角色id
     *
     * @param roleId
     * @return
     */
    List<String> findPermissionByRoleId(Integer roleId);

    /**
     * 根据角色id获取角色名称
     *
     * @param roleid
     * @return
     */
    String findRoleNameByRoleId(Integer roleid);

    /**
     * 获取shiro的认证信息
     */
    SimpleAuthenticationInfo info(ShiroUser shiroUser, User user, String realmName);
}
